package org.ladybug.service.impl;

import org.ladybug.dao.DAOService;
import org.ladybug.dao.persistence.Applicazione;
import org.ladybug.dao.persistence.Ruolo;
import org.ladybug.dao.persistence.RuoloApplicUtente;
import org.ladybug.dao.persistence.RuoloApplicUtenteId;
import org.ladybug.dao.persistence.Utente;
import org.ladybug.service.CommandService;
import org.ladybug.service.admin.AdminService;
import org.ladybug.web.controller.model.ModelProfile;
import org.springframework.validation.BindException;

public class CreaProfiloUtenteCommandService implements CommandService {

	private AdminService adminService;
	private DAOService daoService;

	public void delete(Object command, BindException errors) throws Exception {
		// TODO Auto-generated method stub

	}

	public void insertOrUpdate(Object command, BindException errors)
			throws Exception {
		ModelProfile joinCommand = (ModelProfile) command;
		String app = joinCommand.getApplicativo().getIdApplicativo();
		String  idRuolo= joinCommand.getRuolo().getIdRuolo();
//		ModelFunzioniApplicativo[] funzioni = app.getFunzioni();
		Applicazione applicazione = (Applicazione) daoService.load(Applicazione.class, new Integer(app));
		Ruolo ruolo = (Ruolo) daoService.load(Ruolo.class, new Integer(idRuolo));
		Utente utente = new Utente();
		utente.setNickname(joinCommand.getUtente().getNickname());
		utente = adminService.findUtenteByNickname(utente);
		RuoloApplicUtenteId id = new RuoloApplicUtenteId(utente.getIdUtente().intValue(),applicazione.getIdApplicazione().intValue());
		RuoloApplicUtente rau = new RuoloApplicUtente(id,applicazione,utente,ruolo);
		adminService.joinUserApplicationRole(rau);
	}

	public AdminService getAdminService() {
		return adminService;
	}

	public void setAdminService(AdminService adminService) {
		this.adminService = adminService;
	}

	public DAOService getDaoService() {
		return daoService;
	}

	public void setDaoService(DAOService daoService) {
		this.daoService = daoService;
	}

}
